$(function () {
    //需求1：自定义校验规则
    let form = layui.form
    form.verify({
        //form对象中有一个方法verify专门定义
        //参数是对象类型：属性是规则名称，值是校验规则
        nickname: [
            /^[\S]{1,10}$/,
            '昵称的长度为1-10个字符!'
        ]
    })

    //需求2：渲染用户信息-封装成函数，后面还要用
    //函数不调用，不执行   
    initUserInfo()
    //封装成函数
    function initUserInfo() {
        //axios获取用户信息
        axios({
            method: 'GET',
            url: '/my/userinfo',
        }).then(res => {
            // console.log(res);

            // 判断
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }
            // 根据官网，为form表单赋值
            // 内置模块->表单->表单赋值/取值
            form.val('formUserInfo', res.data.data)
        })
    }

    //需求3：重置表单
    $('#btnReset').on('click', function (e) {
        //阻止表单默认行为
        e.preventDefault()
        //重新渲染表单
        initUserInfo()
    })

    //需求4：提交表单
    $('form').on('submit', function (e) {
        //阻止表单默认提交
        e.preventDefault()
        //发送ajax，实现用户信息修改
        axios({
            method: 'POST',
            url: '/my/userinfo',
            //设置了参数：根据参数类型会设置头信息； a=1&b=2&c=3
            //content-type:application/x-www-form-urlencoded
            data: $(this).serialize()
        }).then(res => {
            //    console.log(res);
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }
            //成功：提示
            layer.msg('恭喜您，修改用户信息成功')
            //直接调用无效，因为不是一个window对象
            window.parent.getUserInfo()
        })
    })




})